package org.zk.dubbo_provider.dao;


import com.github.pagehelper.PageInfo;
import org.zk.entity.User;

import java.util.List;

import java.util.List;
import java.util.Map;


/**
 * <p>
 *  Mapper 接口
 *  高顺
 * </p>
 *
 * @author Alicelonely
 * @since 2019-12-11
 */
public interface UserMapper   {
    /**
     * 用户手机号密码登录（高顺）
     * @param user
     * @return
     */
    User getUserLogin(User user);
    /**
     * 用户邮箱密码登录（高顺）
     * @param user
     * @return
     */
    User getUserLoginByEmail(User user);

    /**
     * 用户手机号密码注册（高顺）
     * @param user
     * @return
     */
    int insertUserByEmail(User user);
    /**
     * 用户邮箱密码注册（高顺）
     * @param user
     * @return
     */
    int insertUserByPhone(User user);

    /**
     * (手机号)忘记密码时检查数据库有没有数据 (高顺)
     * @param user
     * @return
     */
    User selectForGetByPhone(User user);
    /**
     *   （邮箱号）忘记密码时检查数据库有没有数据（高顺）
     * @param user
     * @return
     */
    User selectForGetByEmail(User user);

    /**
     * 手机号修改密码（忘记密码）（高顺）
     * @param user
     * @return
     */
    int updatePwdByPhone(User user);

    /**
     * 手机号修改密码（忘记密码）（高顺）
     * @param user
     * @return
     */
    int updatePwdByEmail(User user);

    /**
     * 根据id查对应的数据
     * @param user
     * @return
     */
    User selectAllById(User user);

    /**
     * 教师审核成功后修改user表状态
     * @param user
     * @return
     */
    int updateUserSign(User user);

    /**
     * 根据手机号查（用来检查这个用户是否已经注册）(高顺)
     * @param user
     * @return
     */
    User selectByPhone(User user);


    /**
     * 个人中心修改手机号（高顺）
     * @param user
     */
    void updatePhone(User user);

    /**
     * 根据用户id查询用户信息(刘硕)
     * @param
     * @return
     */
    int queryUser(Map map);

    /**
     * 刘硕  支付成功后，修改用户信息
     * @param userId
     */
    void updateViptime(Integer userId);
    /**
     * 续费vip（刘硕）
     * @param userId
     */
    void  updatexufei(Integer userId);


    /**
     * vip到期修改用户状态(刘硕)
     * @param userId
     */
    void updateUserVip(Integer userId);
   //分页查询所有Vip用户
    List<User> getAllVip(Map<String,Object> map);

    //查询Vip用户人数
    int queryVipCount(Map<String,Object> map);

    int updateState(Integer userId);
    int updateQiYong(Integer userId);



    //根据用户Id查询
    User getAllUser(int id);

    //修改用户信息
    int updateUser(User user);

    //修改头像
    int updatePic(User user);

    /**
     * 高申，用户列表展示，分页显示
     */
    List<User> lookAllUser(Map<String,Object> map);
    //分页总计人数
    int getCountUser(Map<String,Object> map);

    //添加用户操作
    //1.验证手机号是否已经存在
    int checkPhone(String userPhone);
    //2.开始增加用户
    void startAddUser(User user);
    //编辑用户信息
    //1.编辑前的查看
    User getUserInfoById(int userId);
    //2.编辑用户信息
    void userEdit(User user);
    //删除用户
    void delUserById(User user);
    //禁用用户
    void unUserById(User user);



    User queryUsers(User user);
}
